AI 训练和推理系统的整体架构
1.2.1 训练系统架构
一个典型的 AI 训练系统由以下核心组件构成:
层次 典型组件 主要作用
数据层 数据集、数据加载器、预处理流水线 提供训练样本,并完成清洗、增强、分片等处理
计算层 GPU 集群、CPU 节点、网络互联 执行前向计算、反向传播、梯度同步等训练任务
存储层 并行文件系统、对象存储、Checkpoint 存储 保存训练数据、模型权重、优化器状态和中间结果
调度层 任务队列、资源管理、容错恢复 负责资源分配、任务编排、故障恢复和运行监控 训练系统的整体形态可以概括为:
数据流详解
训练过程中的数据流动大致如下: 训练系统关注的是 吞吐量 和 稳定性:如何让大量 GPU 长时间高效协同工作,并在故障后尽快恢复。
1.2.2 推理系统架构
推理系统与训练系统有显著不同:它更注重 低延迟 和 高吞吐。 一个典型推理系统的请求链路如下: 推理服务集群内部通常包含:
模块 主要职责
推理引擎(vLLM) 请求调度、KV Cache 管理、批处理优化、量化推理
GPU 推理节点 模型权重加载、Attention 计算、Token 生成
负载均衡器 将请求分发到合适的推理实例
API 网关 对外提供服务入口,处理鉴权、限流、路由等能力 以 vLLM 这类推理引擎为例,系统内部通常会持续做以下优化:
- 请求调度:决定哪些请求进入当前批次;
- KV Cache 管理:减少重复计算,提升长上下文场景下的效率;
- 批处理优化:通过动态批处理提升 GPU 利用率;
- 量化推理:使用 INT8 / INT4 / FP16 等精度降低显存和计算成本。
1.2.3 训练与推理的关键差异
维度 训练(Training) 推理(Inference)
计算目标 更新模型参数 生成预测结果
精度要求 FP32 / FP16 / BF16 INT8 / INT4 / FP16
批处理方式 通常使用固定 batch size 更依赖动态 batching
内存使用 参数 + 梯度 + 优化器状态 参数 + KV Cache
通信模式 AllReduce 等集合通信频繁 主要是请求、权重、KV Cache 等数据传输
容错要求 依赖 Checkpoint 机制 需要快速失败恢复和服务高可用
优化重点 吞吐量 延迟 + 吞吐量 简单来说:
- 训练 追求“更快训练出模型”;
- 推理 追求“更快、更稳定、更便宜地服务用户请求”。 BF16(Brain Floating Point 16,也叫 bfloat16) 是一种 16 位浮点数格式,主要用于深度学习(训练/推理)里的低精度计算。它最早由 Google Brain 团队提出并在 TPU 上大规模使用,后来也被 GPU(例如 NVIDIA Ampere 架构起)和主流框架(PyTorch/TensorFlow/JAX 等)广泛支持。
1.2.4 Mooncake 架构简介
Mooncake 是月之暗面(Moonshot AI)开源的大模型推理服务平台。 其核心架构可以概括为: Prefill 阶段:把你输入的整段 prompt “一次性读进去”,并把中间结果保存为 KVCache(Key/Value cache):对应这 n 个 token 的 K/V 都会被存起来。 Decode 阶段:一个 token 一个 token 地“续写”,从第一个生成 token 开始,进入自回归循环: Mooncake 的核心创新包括:
- Prefill-Decode 分离
- 将计算密集型的 Prefill 阶段和内存带宽密集型的 Decode 阶段分离;
- 让不同阶段使用更匹配的硬件资源。
- KV Cache 池化
- 将 KV Cache 作为可管理、可复用的系统资源;
- 支持跨请求共享和复用,降低重复计算。
- 全局调度
- 根据请求特征和集群负载进行智能路由;
- 在吞吐量、延迟和资源利用率之间做平衡。
小结
本节从训练系统、推理系统、两者差异和 Mooncake 架构四个角度介绍了 AI Infra 的整体结构。 训练系统重在高吞吐,推理系统重在低延迟;Mooncake 的核心思想是通过 Prefill-Decode 分离和 KV Cache 池化,让大模型推理系统更高效。